e0a6d43785141f1b3c8ac2cce762a2a598459cd1,portal-impl/src/com/liferay/portal/repository/cmis/CMISRepository.java,CMISRepository,getFoldersAndFileEntries,#number#String[]#number#number#OrderByComparator#,698

Before Change


			}
		}

		if (obc != null) {
			if (obc instanceof RepositoryModelCreateDateComparator ||
				obc instanceof RepositoryModelModifiedDateComparator ||
				obc instanceof RepositoryModelSizeComparator) {

				foldersAndFileEntries = ListUtil.sort(
					foldersAndFileEntries, obc);
			}
			else if (obc instanceof RepositoryModelNameComparator) {
				if (!obc.isAscending()) {
					foldersAndFileEntries = ListUtil.sort(
						foldersAndFileEntries, obc);
				}
			}
		}

		if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS)) {
			return foldersAndFileEntries;
		}
		else {
			return ListUtil.subList(foldersAndFileEntries, start, end);
		}
	}

After Change



	public List<Object> getFoldersAndFileEntries(
			long folderId, String[] mimeTypes, int start, int end,
			OrderByComparator obc)
		throws SystemException {
		boolean useCache = (mimeTypes == null);

		Map<Long, List<Object>> foldersAndFileEntriesCache =
			_foldersAndFileEntriesCache.get();

		List<Object> foldersAndFileEntries =
			foldersAndFileEntriesCache.get(folderId);

		if (null == foldersAndFileEntries || !useCache) {
			foldersAndFileEntries = new ArrayList<Object>(getFolders(folderId));

			foldersAndFileEntries.addAll(
					getFileEntries(
							folderId, mimeTypes,
							QueryUtil.ALL_POS, QueryUtil.ALL_POS, null));

			if (useCache) {
				foldersAndFileEntriesCache.put(folderId, foldersAndFileEntries);
			}
		}

		return sortAndPage(foldersAndFileEntries, start, end, obc);
	}

	@Override